package com.crowd.entity;

import java.util.ArrayList;
import java.util.List;

public class Menu {
    private Integer id;

    private Integer pid;

    private String name;

    private String url;

    private String icon;

    /**
     *  存储子节点的集合，初始化是为了避免空指针异常
     *  树形结构的精髓就在这个嵌套里面
     *  可以声明一个Menu root，这个root里面包含了所有的子节点
     *  root
     *     |-branch  root.getChildren()
     *          |- leaves  branch.getChildren（）
     *
     * 这样只需要一个menu对象，就可以把所有节点进行传输
     */
    private List<Menu> children = new ArrayList<>();

    // 控制节点是否默认为打开装，设置为true 表示默认打开
    private Boolean open = true;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getPid() {
        return pid;
    }

    public void setPid(Integer pid) {
        this.pid = pid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url == null ? null : url.trim();
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon == null ? null : icon.trim();
    }

    public List<Menu> getChildren() {
        return children;
    }

    public void setChildren(List<Menu> children) {
        this.children = children;
    }

    public Boolean getOpen() {
        return open;
    }

    public void setOpen(Boolean open) {
        this.open = open;
    }
}